Colin Walters [Thu, 30 Jan 2014 22:17:36 +0000 (17:17 -0500)]
repo: Improve GPG error messages
The signing test is failing here on EL7 beta for me - it seems like
gnupg isn't honoring the homedir.
Colin Walters [Thu, 30 Jan 2014 20:40:46 +0000 (15:40 -0500)]
libostree: Actually trusted.gpg.d/*.gpg for GPG verification
The intent of this code I'm fairly certain was to use *.gpg from the
trusted.gpg.d, directory. But right now, we're only using
"pubring.gpg" from that directory, which is odd.
Let's fix this to use all keys ending in .gpg, which will also
include pubring.gpg.
Colin Walters [Thu, 30 Jan 2014 20:27:10 +0000 (15:27 -0500)]
build: Install README-gpg in /usr/share/ostree/trusted.gpg.d
Since this is what the current code actually reads.
Colin Walters [Mon, 27 Jan 2014 18:57:18 +0000 (13:57 -0500)]
ostree-prepare-root.service: Also order before plymouth-switch-root.service
In the OSTree model, /sysroot gets set up twice. We need to ensure
that the /sysroot plymouth sees is only after OSTree has set it up.
Colin Walters [Mon, 27 Jan 2014 16:57:35 +0000 (11:57 -0500)]
boot/ostree-remount.service: Run before plymouth-read-write.service
The plymouth service needs a writable /var, so ensure that we run
before it does.
Colin Walters [Mon, 27 Jan 2014 14:10:42 +0000 (09:10 -0500)]
doc: Update manpage a bit
I know, I know, it's about time...
Colin Walters [Fri, 24 Jan 2014 04:26:43 +0000 (04:26 +0000)]
Release 2014.1
Colin Walters [Wed, 22 Jan 2014 15:02:01 +0000 (15:02 +0000)]
pull: Be less chatty with G_MESSAGES_DEBUG=all
Only note state *transitions*, don't spam on simple checks.
Colin Walters [Wed, 22 Jan 2014 11:11:50 +0000 (11:11 +0000)]
TODO: Update
Colin Walters [Tue, 21 Jan 2014 19:53:06 +0000 (19:53 +0000)]
tests: Only install test-corruption if gjs is found
It now uses a gjs-based helper.
Colin Walters [Tue, 21 Jan 2014 08:57:34 +0000 (08:57 +0000)]
pull: Add remotename:ref syntax
This is really the common case.
Colin Walters [Mon, 20 Jan 2014 23:00:09 +0000 (18:00 -0500)]
README: Just link to wiki, move most of it to README-historical.md
Colin Walters [Mon, 20 Jan 2014 17:13:37 +0000 (12:13 -0500)]
repo: Document ostree_repo_sign_commit(), and add introspection data
The important bit for introspection is (allow-none) on the homedir.
Colin Walters [Mon, 20 Jan 2014 11:17:45 +0000 (06:17 -0500)]
pull: Close another race
Only send _IDLE messages if and only if we state transition the main
thread (from idle -> !idle or !idle -> idle). This ensures that we
don't send IDLE, then get it back, and process that when we're !idle.
Colin Walters [Sun, 19 Jan 2014 23:12:44 +0000 (18:12 -0500)]
pull: Hopefully squash race where we would exit early
This is a redesign (again) of the pull code. It is simpler and
survives 20 minutes of testing in a loop, whereas the old code would
only go from 30 seconds to 2 minutes.
The problem with the old code was that there was a race where we might
determine idle state even when there are content requests in flight
between the metadata thread and the main one.
This code majorly reworks things - there's now only one IDLE message,
sent in a circle from the main thread, through the metadata scanner,
and back to the main one.
Crucially it's only sent when the *main* thread is idle. Previously
we were looking at whether the metadata scanner is idle, but that
doesn't make a lot of sense. First let's make sure the main thread is
idle, then verify that the metadata one is.
This closes the loop because we'll have ensured we get any pending
requests.
https://bugzilla.gnome.org/show_bug.cgi?id=706456
Colin Walters [Sun, 19 Jan 2014 17:39:38 +0000 (12:39 -0500)]
tests/pull-corruption: Ensure we corrupt an object to be pulled
This test had some nondeterminism because we chose a random
object to corrupt, but because there were multiple commits, it
was possible that we chose an object that was not being pulled.
Fix this by writing some custom GJS code to find an explicitly random
object that exists in a given ref, an change a random byte offset.
This adds a lot more randomness to the testing too.
Colin Walters [Sun, 19 Jan 2014 18:18:04 +0000 (13:18 -0500)]
libostree: Ensure we set standard::type when querying files
This makes the obvious code to recursively enumerate directories
operate more sanely.
Noticed this while trying to write corrupt-repo-ref.js.
Colin Walters [Sun, 19 Jan 2014 17:39:18 +0000 (12:39 -0500)]
pull: Add a few more g_debug() and assertions
To help track down the race condition better.
Colin Walters [Sun, 19 Jan 2014 16:48:27 +0000 (11:48 -0500)]
tests: Small tweaks to pull corruption test
This one is failing here, I suspect it's the generic pull race
condition, but these fixes should make it slightly more reliable.
Colin Walters [Sun, 19 Jan 2014 16:33:35 +0000 (11:33 -0500)]
Update .gitignore
Colin Walters [Sun, 19 Jan 2014 16:28:30 +0000 (11:28 -0500)]
deploy/main: Unify some bits between admin-switch and admin-upgrade
Colin Walters [Sat, 18 Jan 2014 22:50:22 +0000 (17:50 -0500)]
test-sysroot: Update for API change
Colin Walters [Sat, 18 Jan 2014 22:42:24 +0000 (17:42 -0500)]
admin/switch: New builtin to switch between trees
This is something I want to make easier, as it better showcases the
flexibility of OSTree.
Colin Walters [Sat, 18 Jan 2014 09:53:16 +0000 (04:53 -0500)]
Squash some harmless compiler warnings
None of these AFAICS actually can occur, but let's silence gcc.
Colin Walters [Sat, 18 Jan 2014 09:52:45 +0000 (04:52 -0500)]
libotutil: Fix a possible uninitialized free() in error path
Spotted by gcc.
Colin Walters [Sat, 18 Jan 2014 09:44:54 +0000 (04:44 -0500)]
packaging: Update infrastructure
The Makefile.dist-packaging lives canonically in rpm-ostree/ for now,
it's my latest hack to automate git -> (s)rpm.
Update the spec.in from current Fedora.
Colin Walters [Fri, 17 Jan 2014 15:32:34 +0000 (10:32 -0500)]
commit: Reject non-regular/non-symlinks earlier with better error message
Also avoid _NOT_SUPPORTED as that triggers the --help behavior from
the commandline; just use _FAILED.
https://bugzilla.gnome.org/show_bug.cgi?id=722410
Colin Walters [Thu, 16 Jan 2014 18:04:00 +0000 (13:04 -0500)]
deploy: Rework kernel arguments, add --karg-append to "admin deploy"
The "ordered hash" code was really just for kernel arguments. And it
turns out it needs to be a multihash (for e.g. multiple console=
arguments).
So turn the OstreeOrderedHash into OstreeKernelArgs, and move the bits
to split key=value and such into there.
Now we're not making this public API yet - the public OstreeSysroot
just takes char **kargs. To facilitate code reuse between ostree/ and
libostree/, make it a noinst libtool library. It'll be duplicated in
the binary and library, but that's OK for now. We can investigate
making OstreeKernelArgs public later.
https://bugzilla.gnome.org/show_bug.cgi?id=721136
Colin Walters [Thu, 16 Jan 2014 15:20:47 +0000 (10:20 -0500)]
COPYING: Update to latest FSF with current address
Hooray for rpmlint.
Colin Walters [Wed, 15 Jan 2014 14:48:04 +0000 (09:48 -0500)]
Unify uboot and syslinux test cases
The test-admin-deploy-1 was copied into -uboot at some point. But
really they should be testing exactly the same thing, except for
the bootloader backend.
Unify these tests by extracting a common test core.
Colin Walters [Wed, 15 Jan 2014 14:19:09 +0000 (09:19 -0500)]
Update libgsystem
This has a GsConsole fix.
Colin Walters [Mon, 13 Jan 2014 13:45:56 +0000 (08:45 -0500)]
admin: Add --karg-proc-cmdline argument
When installing a new tree inside an existing OS, this is a convenient
way to include the command line arguments one needs (such as root=).
Colin Walters [Wed, 15 Jan 2014 13:46:05 +0000 (08:46 -0500)]
deploy: Write bootloader config even if just kernel arguments changed
The official way to add bootloader arguments to the current deployment
is to redeploy with --karg. However, doing so tripped up an
optimization made inside the deployment code to just swap the
bootlinks if we're keeping the same "bootcsum".
Change this optimization to look at the pair of (bootcsum, options).
Colin Walters [Sat, 11 Jan 2014 17:02:34 +0000 (10:02 -0700)]
build: Don't use += for ACLOCAL_AMFLAGS
It confuses the autotools.
Colin Walters [Fri, 10 Jan 2014 13:15:54 +0000 (08:15 -0500)]
pull: Ensure we begin a status line
Otherwise if the operation completes before anything happens, we hit
an assertion trying to end a status line when we didn't begin one.
Colin Walters [Wed, 8 Jan 2014 23:29:05 +0000 (18:29 -0500)]
sysroot: Error out on deploy --os=<unknown> which has not been initialized
We should hard require "ostree admin os-init foo" before letting
deployments go there; it's too easy to typo the argument.
Colin Walters [Fri, 3 Jan 2014 16:43:31 +0000 (11:43 -0500)]
Makefile-decls.am: Some minor fixes from hotssh
Colin Walters [Fri, 3 Jan 2014 16:39:27 +0000 (11:39 -0500)]
build: Add Makefile-decls.am
I'll be sharing this across more of my projects.
Colin Walters [Wed, 25 Dec 2013 19:24:49 +0000 (14:24 -0500)]
Remove 'write-refs' builtin
See https://bugzilla.gnome.org/show_bug.cgi?id=705979
This was just a performance hack for gnome-continuous back before it
used libostree via g-i.
Colin Walters [Wed, 25 Dec 2013 19:17:36 +0000 (14:17 -0500)]
ostree/remote-add: Add --no-gpg-verify option
To more conveniently disable GPG verification.
Colin Walters [Mon, 23 Dec 2013 16:40:57 +0000 (11:40 -0500)]
repo: Introspect _sign_commit() and _verify_commit()
We can't use #ifdef in the headers, since then g-ir-scanner won't pick
up the functions (unless we included config.h). Let's instead always
have the symbols, but just set an error if we were built without
support for it, just like how pull works.
Colin Walters [Fri, 20 Dec 2013 22:44:13 +0000 (17:44 -0500)]
prune: Remove redundant 'bytes' in format string
Colin Walters [Wed, 18 Dec 2013 04:00:01 +0000 (23:00 -0500)]
repo: Provide a friendlier error message if no signatures are found
I always forget the key to disable it...
Colin Walters [Mon, 16 Dec 2013 23:24:03 +0000 (18:24 -0500)]
repo-pull: Remove leftover unused %s
Roddy Shuler [Thu, 12 Dec 2013 22:56:19 +0000 (14:56 -0800)]
core: Set mtime of content objects to 0
This is necessary to satisfy tools such as guile and python, which
compare mtimes to determine whether or not source files need to be
compiled.
https://bugzilla.gnome.org/show_bug.cgi?id=720363
Colin Walters [Fri, 29 Nov 2013 04:45:56 +0000 (23:45 -0500)]
TODO: Add a few items
Colin Walters [Fri, 29 Nov 2013 04:45:48 +0000 (23:45 -0500)]
Update libgsystem
Colin Walters [Tue, 19 Nov 2013 00:47:46 +0000 (19:47 -0500)]
Move xattr handling into libgsystem, fix sysroot to handle directory ownership/perms
This large patch moves the core xattr logic down into libgsystem,
which allows the gs_shutil_cp_a() API to copy them. In turn, this
allows us to just use that API instead of rolling our own recursive
copy here.
As noted in the new comment though, one case that we are explicitly
regressing is where the new /etc removes a parent directory that's
needed by a modified file. This seems unlikely for most vendors now,
but let's do that as a separate bug.
https://bugzilla.gnome.org/show_bug.cgi?id=711058
Colin Walters [Fri, 22 Nov 2013 21:42:20 +0000 (16:42 -0500)]
ostree-remount.service: Run before systemd-random-seed.service
It's essential that we've mounted /var read-write in order for
random-seed.service to work.
Colin Walters [Thu, 21 Nov 2013 19:34:47 +0000 (14:34 -0500)]
fetcher: Display incremental download progress
Previously the progress meter would bump in large chunks after we
completed a download. Instead, poll in progress files via fstat() for
their size, and add those to the running total.
Colin Walters [Mon, 4 Nov 2013 02:35:45 +0000 (21:35 -0500)]
Update libgsystem
For https://bugzilla.gnome.org/show_bug.cgi?id=711057
Colin Walters [Sun, 27 Oct 2013 20:41:40 +0000 (16:41 -0400)]
main: Treat default osname more consistently
The libostree already treats passing NULL for osname as "booted
osname, if any". We should do the same inside the tools. The upgrade
builtin had this logic duplicated there; we should be able to safely
remove it.
https://bugzilla.gnome.org/show_bug.cgi?id=710970
Daniel Narvaez [Sun, 27 Oct 2013 18:39:02 +0000 (19:39 +0100)]
Fix crash when deploying with implicit os name
When booted into an ostree you can deploy without passing
an --os option. That was crashing though, because
ot_admin_complete_deploy_one is called with NULL
osname but it was not handling it properly.
https://bugzilla.gnome.org/show_bug.cgi?id=710970
Daniel Narvaez [Sun, 27 Oct 2013 17:20:12 +0000 (18:20 +0100)]
main/remote: Add a show-url operation to the remote command
Useful to get the remote url in scripts.
https://bugzilla.gnome.org/show_bug.cgi?id=710967
Colin Walters [Fri, 25 Oct 2013 00:32:20 +0000 (20:32 -0400)]
libostree: Remove extra : in comment
g-ir-scanner handles this, but it stuck out.
Colin Walters [Thu, 24 Oct 2013 18:37:50 +0000 (14:37 -0400)]
libostree: Squash a compiler warning
Colin Walters [Thu, 24 Oct 2013 18:37:35 +0000 (14:37 -0400)]
libostree: Squash two g-ir-scanner warnings
Daniel Narvaez [Tue, 22 Oct 2013 20:04:32 +0000 (22:04 +0200)]
Add support for mkinitcpio
https://bugzilla.gnome.org/show_bug.cgi?id=710682
Colin Walters [Thu, 24 Oct 2013 13:10:34 +0000 (09:10 -0400)]
Add OstreeAsyncProgress, use it for ostree_repo_pull
Several APIs in libostree were moved there from the commandline code,
and have hardcoded g_print() for progress and notifications. This
isn't useful for people who want to write PackageKit backends, custom
GUIs and the like.
From what I can tell, there isn't really a winning precedent in GLib
for progress notifications.
PackageKit has the model where the source has GObject properties that
change as async ops execute, which isn't bad...but I'd like something
a bit more general where say you can have multiple outstanding async
ops and sensibly track their state.
So, OstreeAsyncProgress is basically a threadsafe property bag with a
change notification signal.
Use this new API to move the GSConsole usage (i.e. g_print()) out from
libostree/ and into ostree/.
Colin Walters [Wed, 23 Oct 2013 19:43:29 +0000 (15:43 -0400)]
Update libgsystem
Just to test the new code.
Jeremy Whiting [Wed, 9 Oct 2013 02:44:39 +0000 (20:44 -0600)]
core: Add size information to commit metadata
Add a --generate-sizes option to commit to add size information to the
commit metadata. This will be used by higher level code which wants
to determine the total size necessary for downloading.
Colin Walters [Tue, 15 Oct 2013 20:20:08 +0000 (16:20 -0400)]
Release 2013.7
Colin Walters [Tue, 15 Oct 2013 20:41:07 +0000 (16:41 -0400)]
repo: Remove set-but-unused variable
The gpgme examples use this, but from what I can tell we don't really
need to because we don't need detailed results; we only care whether
we signed it at all.
Colin Walters [Tue, 15 Oct 2013 20:30:09 +0000 (16:30 -0400)]
trivial: Add missing files to dist
Colin Walters [Tue, 15 Oct 2013 19:26:37 +0000 (15:26 -0400)]
trivial: Don't include config.h in headers
This should be included by each .c file. This fixes using libostree
from a "plain" project without config.h.
Colin Walters [Tue, 15 Oct 2013 18:11:43 +0000 (14:11 -0400)]
sysroot: Handle deleting directories in /etc
We need to use the full shutil_rm_rf() in order to actually delete
complete directories.
Test suite code based on a patch from Sjoerd Simons <sjored@luon.net>
https://bugzilla.gnome.org/show_bug.cgi?id=710097
Colin Walters [Thu, 15 Aug 2013 13:03:21 +0000 (09:03 -0400)]
core: Add code to read/write "varints"
Adapted from Google protobufs. For several cases, we want to support
e.g. file sizes up to guint64, but paying the cost of 8 bytes for each
number is too high.
This will be used for static deltas and sizes metadata.
Colin Walters [Fri, 11 Oct 2013 15:50:15 +0000 (11:50 -0400)]
build: Also make gjs-based tests conditional on introspection support
Since they use imports.gi.OSTree.
Jasper St. Pierre [Wed, 9 Oct 2013 20:17:35 +0000 (16:17 -0400)]
Update libgsystem
Colin Walters [Wed, 9 Oct 2013 16:53:12 +0000 (12:53 -0400)]
libostree: Fix an introspection scanner warning
Colin Walters [Wed, 9 Oct 2013 16:05:56 +0000 (12:05 -0400)]
repo: Tweak traversal API
It's convenient for bindings if we have a version that doesn't mutate
the hash table, because they pass temporary hash tables as input.
Colin Walters [Thu, 3 Oct 2013 22:33:18 +0000 (18:33 -0400)]
tests: Extend test-sysroot.js further
Now covers a lot more of the API.
Colin Walters [Thu, 3 Oct 2013 22:32:41 +0000 (18:32 -0400)]
sysroot: Move ostree_sysroot_origin_new_from_refspec here
Rather than having it live in admin. This is useful for other
consumers like the test suite.
Colin Walters [Thu, 3 Oct 2013 22:31:07 +0000 (18:31 -0400)]
sysroot: Ensure we create /boot/loader.%d/entries even if there are no deployments
Not doing so breaks things, and we should support this.
Colin Walters [Thu, 3 Oct 2013 22:30:07 +0000 (18:30 -0400)]
sysroot: Avoid bad double-free
If a deployment is somehow in the list twice, the hash table will free
the *new* value with g_hash_table_insert which gets all broken. Just
use g_hash_table_replace().
Colin Walters [Thu, 3 Oct 2013 22:29:40 +0000 (18:29 -0400)]
sysroot: Update some annotations
We were double-freeing before.
Colin Walters [Tue, 17 Sep 2013 02:37:00 +0000 (22:37 -0400)]
sysroot: Support more arbitrary deployment changes
This commit changes the sysroot API so that one can create arbitrary
new deployment checkouts, then commit them as one step. This is to
enable things like an automatic bisection tool which say create 50
deployments at once, then when done clean them up.
This also moves some printfs from the library into src/ostree.
Colin Walters [Wed, 2 Oct 2013 23:47:38 +0000 (19:47 -0400)]
tests: Add a simple test-sysroot.js that covers OSTree.Sysroot
This will be more interesting as a test case user of the API.
Colin Walters [Wed, 2 Oct 2013 13:00:10 +0000 (09:00 -0400)]
repo: Only delete temp files older than a day
This is somewhat lame, but to do better we need a reliable
multiprocess synchronization mechanism.
https://bugzilla.gnome.org/show_bug.cgi?id=709115
Colin Walters [Mon, 30 Sep 2013 12:51:25 +0000 (08:51 -0400)]
repo: Enumerate objects using openat() too, make more efficient
This drops several calls to malloc()/g_object_new() per object
enumeration. Just a followup to using openat() and friends in other
places.
Colin Walters [Mon, 30 Sep 2013 00:17:18 +0000 (20:17 -0400)]
core: Make ostree_get_relative_object_path() private
I plan to rename all of these APIs to use the term 'loose', so that it
makes more sense after pack files are introduced. External users
should not use them; instead use _load_variant() or _read_commit().
Jeremy Whiting [Thu, 5 Sep 2013 18:50:36 +0000 (12:50 -0600)]
pull: Verify commits with gpg signatures from detached metadata
This uses gpgv for verification against DATADIR/ostree/pubring.gpg by
default. The keyring can be overridden by specifying OSTREE_GPG_HOME.
Add a unit test for commit signing with gpg key and verifying on pull;
to implement this we ship a test GPG key generated with no password
for Ostree Tester <test@test.com>.
Change all of the existing tests to disable GPG verification.
Colin Walters [Sun, 29 Sep 2013 18:00:53 +0000 (14:00 -0400)]
commit: Store detached metadata in normal form
Otherwise corrupted variants may crash us.
Jeremy Whiting [Tue, 3 Sep 2013 01:43:49 +0000 (19:43 -0600)]
core: Use libgpgme to add GPG signatures to detached metadata for commit object
Add an optional dependency on gpgme to add GPG signatures into the
detached metadata, with the key "ostree.gpgsigs", as an "aay", an
array of signatures (treated as binary data).
The commit command gains a --gpg-sign=<key-id> argument. Also add an
argument --gpg-homedir to set the GPG homedir where we look for
keyrings.
Colin Walters [Sat, 28 Sep 2013 16:00:16 +0000 (12:00 -0400)]
remote-add: Add --set=KEY=VALUE option
This can be used to add a remote and set e.g. tls-permissive=true, or
gpgverify=false.
Colin Walters [Fri, 27 Sep 2013 16:55:07 +0000 (12:55 -0400)]
show: Handle keys of any type, and set an error if key doesn't exist
Previously we were just handling strings, and silently doing nothing
if the key didn't exist, which is pretty broken.
Colin Walters [Thu, 26 Sep 2013 18:38:37 +0000 (14:38 -0400)]
repo-pull: Allocate with g_new0 rather than g_new.
Conflicts:
src/libostree/ostree-repo-pull.c
Colin Walters [Thu, 26 Sep 2013 18:00:36 +0000 (14:00 -0400)]
pull: Also fetch detached commitmeta files
These will contain GPG signatures and the like in the future, so we
should fetch them now.
Colin Walters [Thu, 26 Sep 2013 17:59:08 +0000 (13:59 -0400)]
repo: When adding detached metadata, ensure the objdir exists
We may be creating the commitmeta file before the commit, so we need
to call mkdir(<first two checksum characters>) here too.
Colin Walters [Thu, 26 Sep 2013 17:57:59 +0000 (13:57 -0400)]
show: Print an error message if commit doesn't have detached metadata
...instead of segfaulting.
Colin Walters [Tue, 24 Sep 2013 18:10:40 +0000 (14:10 -0400)]
fetcher: Fix previous commit
I was getting hangs in the test suite, and looking at the previous
commit, we were calling the async completion functions out of the
finalizer for the URI, which is weird. I didn't analyze what's going
wrong, but what we really should be doing is processing our internal
queue after we've downloaded a file, and the request is about to be
finalized.
I suspect doing queue management from the finalizer created a circular
reference type situation.
This patch deduplicates the queue processing bits too.
https://bugzilla.gnome.org/show_bug.cgi?id=708126
Sjoerd Simons [Sun, 15 Sep 2013 19:25:02 +0000 (21:25 +0200)]
fetcher: Add a queue to limit requests sent to soup
On a large ostree repository pulling over http slows to a crawl. Pulling
from localhost results in:
5944 metadata, 63734 content objects fetched; 850509 KiB transferred in
1106 seconds
In other words about 800KiB/s. Some profiling shows that essentially
all of the CPU goes into libsoup doing its request bookkeeping instead
of into the actual downloading.
Adding a simple queue to limit to number of active request sent into
libsoup makes for a dramatic improvement:
5944 metadata, 63734 content objects fetched; 850509 KiB transferred
in 89 seconds
So around 9450 KiB/s.
https://bugzilla.gnome.org/show_bug.cgi?id=708126
Colin Walters [Sat, 21 Sep 2013 15:06:20 +0000 (11:06 -0400)]
tests: Add u-boot
It needs to be installed so it'll be run by the InstalledTests scheme.
Javier Martinez Canillas [Sat, 21 Sep 2013 01:35:55 +0000 (03:35 +0200)]
tests: Fix U-Boot test case
commit
08b873457 ("deploy: Remove checksum from generated loader entries")
changed the generated loader entries file names thus making the U-Boot test
case to fail since this test parsed those files.
Fix test-admin-deploy-uboot.sh by looking to the updated files names.
https://bugzilla.gnome.org/show_bug.cgi?id=708511
Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Colin Walters [Fri, 20 Sep 2013 18:00:31 +0000 (14:00 -0400)]
libostree: Document and annotate some methods to quash g-ir-scanner warnings
Since warnings are bad. Introspection is good.
Colin Walters [Fri, 20 Sep 2013 17:54:43 +0000 (13:54 -0400)]
libostree: Remove private header file from ostree.h
Was breaking pkgsys-ostree.
Colin Walters [Fri, 20 Sep 2013 13:42:50 +0000 (09:42 -0400)]
upgrade: Don't segfault if there's no previous deployment
Obviously.
Colin Walters [Fri, 20 Sep 2013 12:09:06 +0000 (08:09 -0400)]
deploy: Correctly swap bootloader version with new boot checksums
If we had two deployments with different boot checksums, and were
trying to remove the one that was the same and add a new one (the
normal case), we'd end up assuming due to comparison with 0 that
we only needed to do the fast subbootversion swap.
Fix this by actually putting 1 where we really mean 1.
And update the tests to verify the fix; I have double-verified by
undoing the fix, and noting that the test fails.
https://bugzilla.gnome.org/show_bug.cgi?id=708351
Colin Walters [Fri, 20 Sep 2013 02:41:33 +0000 (22:41 -0400)]
deploy: Remove checksum from generated loader entries
The actual deployment checksum shouldn't be in there, because we may
just swap bootlinks, rendering the name of the old bootloader entry
file invalid. Thankfully nothing actually parsed the names of these
files, so let's just use the index.
Colin Walters [Fri, 20 Sep 2013 02:26:03 +0000 (22:26 -0400)]
deploy: Do a full system sync after writing bootloader config
This is just something I noticed on inspection; we should catch any
changes to /boot in the sync(), even though theoretically gio should
have done fdatasync().